#ifndef TASKQUEUE_H_
#define TASKQUEUE_H_
#include"cmdTask.h"
#include<stdbool.h>

typedef struct _taskNode_s {
	task_t *task;
	struct _taskNode_s *next; // next指针
} _taskNode_t;

typedef struct _taskQueue_s {
	int size;
	_taskNode_t *front; // 首指针
	_taskNode_t *rear; // 尾指针
} _taskQueue_t;

// 初始化队
void _taskQueue_init(_taskQueue_t *q);

// 入队
int _taskQueue_enque(_taskQueue_t *q, task_t *task);

// 出队
int _taskQueue_deque(_taskQueue_t *q);

// 判空
bool _taskQueue_is_empty(_taskQueue_t *q);

// 取队头元素
task_t *_taskQueue_front(_taskQueue_t *q);

#endif
